TARGET = binaryname CC = gcc CFLAGS = -Wall -Werror -O3 -flto -s LIBS = SRCDIR = src OBJDIR = obj SRC := $(wildcard $(SRCDIR)/*.c) OBJ := $(SRC:$(SRCDIR)/%.c=$(OBJDIR)/%.o) all: $(TARGET) $(OBJDIR)/%.o: $(SRCDIR)/%.c $(CC) $(CFLAGS) -c $< -o $@ $(TARGET): $(OBJ) $(CC) $(CFLAGS) $(OBJ) -o $(TARGET) $(LIBS) clean: @rm -f $(TARGET) $(OBJDIR)/* .PHONY: clean